#include <iostream>

class point {
private:
        int x;
        int y;

public:
        point() {std::cout << "call point()" << std::endl;}
        point(int a, int b);
        point(const point &);
        ~point() {}
        int getx();
        void setx(int);
        int gety();
        void sety(int);
};

point::point(int a, int b)
{
        x = a;
        y = b;
        std::cout << "call point(int, int)" << std::endl;
}

point::point(const point &a)
{
        x = a.x;
        y = a.y;
        std::cout << "call point(const point &)" << std::endl;
}

int point::getx()
{
        return x;
}

void point::setx(int a)
{
        x = a;
}

int point::gety()
{
        return y;
}

void point::sety(int a)
{
        y = a;
}

using namespace std;

int main()
{
        point xx(5, 6);
        point yy(xx);
        point *zz = new point(xx);

        xx.setx(3);
        xx.sety(4);

        cout << "(" << xx.getx() << "," << xx.gety() << ")" << endl;
        cout << "(" << yy.getx() << "," << yy.gety() << ")" << endl;

        return 0;
}
